package cronapi

import (
	"github.com/gogf/gf/container/garray"
	"github.com/gogf/gf/net/ghttp"
	"go-middle/app/admin/service/cronservice"
	"go-middle/app/common/model/cron_log"
	"go-middle/library/response"
)

// GetLogList 定时任务日志列表
// @Tags    定时任务
// @Summary 任务日志列表
// @Accept   json
// @Produce  json
// @Param    body  body cron_log.SelectPageReq false "搜索"
// @Success 200 {object} cron.Entity "count 总数 data 列表"
// @Router /api/cron_log [get]
// @Security ApiKeyAuth
func GetLogList(r *ghttp.Request) {
	var req cron_log.SelectPageReq
	//获取参数
	if err := r.Parse(&req); err != nil {
		response.Error(r, err.Error(), nil)
	}
	count, list := cronservice.GetConTabLog(req)
	if count == 0 {
		response.SuccessList(r, count, garray.New())
	}
	response.SuccessList(r, count, list)
}

// CronLogDelete 删除定时任务日志
// @Tags    定时任务
// @Summary 删除定时任务日志
// @Accept   json
// @Produce  json
// @Param    body  body cron_log.ReqDelete true "删除任务日志"
// @Success 200 {object} response.JsonResponse
// @Router /api/cron_log [delete]
// @Security ApiKeyAuth
func CronLogDelete(r *ghttp.Request) {
	var req cron_log.ReqDelete
	//获取参数
	if err := r.Parse(&req); err != nil {
		response.Error(r, err.Error(), nil)
	}
	err := cron_log.DeleteAll(req.Ids)
	if err != nil {
		response.Error(r, "操作失败", nil)
	}
	response.Success(r, "操作成功", nil)
}

// GetLogResult 定时任务日志 执行结果
// @Tags    定时任务
// @Summary 定时任务日志 执行结果
// @Accept  multipart/form-data
// @Produce  json
// @Param   id formData int true  "日志ID"
// @Success 200 string "直接结果"
// @Router /api/cron_log/detail [get]
// @Security ApiKeyAuth
func GetLogResult(r *ghttp.Request) {
	id := r.GetInt64("id")
	res := cronservice.GetCronLogByID(id)
	if res.Result == "" {
		r.Response.WritelnExit("暂无结果")
	}
	r.Response.WritelnExit(res.Result)
}
